#ifndef LAYER_H
#define LAYER_H

#include "Core/base.h"
#include "Core/timestep.h"
#include "Events/event.h"

namespace CC {

	class CC_EXPORT Layer
	{
	public:
		Layer(const std::string& name = "Layer");
		virtual ~Layer() = default;

		virtual void OnAttach() {}
		virtual void OnDetach() {}
		virtual void OnUpdate(Timestep ts, std::string renderscene = "") {}
		virtual void OnImGuiRender() {
			// CC_CORE_INFO("%s :OnImGuiRender\n", GetName().c_str());
		}
		virtual void OnEvent(Event& event) {}

		const std::string& GetName() const { return m_DebugName; }
	protected:
		std::string m_DebugName;
	};

}

#endif